Node.js MySQL Select From

Node.js MySQL

টেবিল থেকে নির্বাচন

MySQL-এ একটি টেবিল থেকে ডেটা নির্বাচন করতে, "SELECT" বিবৃতি ব্যবহার করুন।

উদাহরণ

"গ্রাহক" টেবিল থেকে সমস্ত রেকর্ড নির্বাচন করুন এবং ফলাফল বস্তু প্রদর্শন করুন:

let mysql = require('mysql');

let con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers", function (err, result, fields) {
    if (err) throw err;
    console.log(result);
  });
});

SELECT * সমস্ত কলাম প্রদান করে

উপরের কোডটি "demo_db_select.js" ফাইলে সংরক্ষণ করুন এবং ফাইলটি চালান:

C:\Users\Your Name>node demo_db_select.js

এটি আপনাকে এই ফলাফল দেবে:

[
  { id: 1, name: 'John', address: 'Highway 71'},
  { id: 2, name: 'Peter', address: 'Lowstreet 4'},
  { id: 3, name: 'Amy', address: 'Apple st 652'},
  { id: 4, name: 'Hannah', address: 'Mountain 21'},
  { id: 5, name: 'Michael', address: 'Valley 345'},
  { id: 6, name: 'Sandy', address: 'Ocean blvd 2'},
  { id: 7, name: 'Betty', address: 'Green Grass 1'},
  { id: 8, name: 'Richard', address: 'Sky st 331'},
  { id: 9, name: 'Susan', address: 'One way 98'},
  { id: 10, name: 'Vicky', address: 'Yellow Garden 2'},
  { id: 11, name: 'Ben', address: 'Park Lane 38'},
  { id: 12, name: 'William', address: 'Central st 954'},
  { id: 13, name: 'Chuck', address: 'Main Road 989'},
  { id: 14, name: 'Viola', address: 'Sideway 1633'}
]

💡গুরুত্বপূর্ণ নোট:

  • SELECT *:টেবিলের সব কলাম ফেরত দেয়
  • কলব্যাক ফাংশন:তিনটি পরামিতি রয়েছে: ত্রুটি, ফলাফল এবং ক্ষেত্র
  • উপসংহার অর্থ:একটি অবজেক্ট হিসাবে প্রতিটি সারি সহ একটি অ্যারে
  • ত্রুটি হ্যান্ডলিং:সর্বদা ত্রুটির জন্য পরীক্ষা করুন

কলাম নির্বাচন করা হচ্ছে

একটি টেবিলে শুধুমাত্র নির্দিষ্ট কলাম নির্বাচন করতে, কলামের নাম অনুসরণ করে "SELECT" বিবৃতিটি ব্যবহার করুন।

উদাহরণ

"গ্রাহক" টেবিল থেকে নাম এবং ঠিকানা নির্বাচন করুন এবং ফিরে আসা বস্তুটি প্রদর্শন করুন:

let mysql = require('mysql');

let con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT name, address FROM customers", function (err, result, fields) {
    if (err) throw err;
    console.log(result);
  });
});

উপরের কোডটি "demo_db_select2.js" ফাইলে সংরক্ষণ করুন এবং ফাইলটি চালান:

C:\Users\Your Name>node demo_db_select2.js

এটি আপনাকে এই ফলাফল দেবে:

[
  { name: 'John', address: 'Highway 71'},
  { name: 'Peter', address: 'Lowstreet 4'},
  { name: 'Amy', address: 'Apple st 652'},
  { name: 'Hannah', address: 'Mountain 21'},
  { name: 'Michael', address: 'Valley 345'},
  { name: 'Sandy', address: 'Ocean blvd 2'},
  { name: 'Betty', address: 'Green Grass 1'},
  { name: 'Richard', address: 'Sky st 331'},
  { name: 'Susan', address: 'One way 98'},
  { name: 'Vicky', address: 'Yellow Garden 2'},
  { name: 'Ben', address: 'Park Lane 38'},
  { name: 'William', address: 'Central st 954'},
  { name: 'Chuck', address: 'Main Road 989'},
  { name: 'Viola', address: 'Sideway 1633'}
]

🚀কর্মক্ষমতা টিপস:

  • নির্দিষ্ট কলাম:অপ্রয়োজনীয় ডেটা এড়িয়ে চলুন
  • নেটওয়ার্ক ট্রাফিক:কম ডেটা পাঠান
  • মেমরি ব্যবহার:ছোট সিদ্ধান্ত সেট
  • পড়ার স্বচ্ছতা:নির্দিষ্ট ডেটা প্রয়োজনীয়তা নির্দেশ করুন

উপসংহার মানে

আপনি উপরের উদাহরণের ফলাফল থেকে দেখতে পাচ্ছেন, ফলাফল বস্তুটি একটি অবজেক্ট হিসাবে প্রতিটি সারি সহ একটি অ্যারে।

উদাহরণস্বরূপ, তৃতীয় রেকর্ডের ঠিকানা ফেরত দিতে, তৃতীয় সারির বস্তুর ঠিকানা বৈশিষ্ট্য উল্লেখ করুন:

উদাহরণ

তৃতীয় রেকর্ডের রিটার্ন ঠিকানা:

console.log(result[2].address);

এটি এই ফলাফল তৈরি করবে:

Apple st 652

অ্যারে অ্যাক্সেস

ফলাফল অ্যারে শূন্য-ভিত্তিক স্বরলিপি ব্যবহার করে অ্যাক্সেস করা হয়

অ্যাট্রিবিউট অ্যাক্সেস

ডট নোটেশন ব্যবহার করে কলামের মানগুলি অ্যাক্সেস করা যেতে পারে

JSON অবজেক্ট

প্রতিটি সারি কী হিসাবে কলামের নাম সহ একটি JSON অবজেক্ট

ক্ষেত্র মানে

কলব্যাক ফাংশনের তৃতীয় প্যারামিটার হল ফলাফলের প্রতিটি ক্ষেত্রের তথ্য সম্বলিত একটি অ্যারে।

উদাহরণ

"গ্রাহক" টেবিল থেকে সমস্ত রেকর্ড নির্বাচন করুন এবং ক্ষেত্র বস্তু প্রদর্শন করুন:

let mysql = require('mysql');

let con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT name, address FROM customers", function (err, result, fields) {
    if (err) throw err;
    console.log(fields);
  });
});

উপরের কোডটি "demo_db_select_fields.js" ফাইলে সংরক্ষণ করুন এবং ফাইলটি চালান:

C:\Users\Your Name>node demo_db_select_fields.js

এটি আপনাকে এই ফলাফল দেবে:

[
  {
    catalog: 'def',
    db: 'mydb',
    table: 'customers',
    orgTable: 'customers',
    name: 'name',
    orgName: 'name',
    charsetNr: 33,
    length: 765,
    type: 253,
    flags: 0,
    decimals: 0,
    default: undefined,
    zeroFill: false,
    protocol41: true
  },
  {
    catalog: 'def',
    db: 'mydb',
    table: 'customers',
    orgTable: 'customers',
    name: 'address',
    orgName: 'address',
    charsetNr: 33,
    length: 765,
    type: 253,
    flags: 0,
    decimals: 0,
    default: undefined,
    zeroFill: false,
    protocol41: true
  }
]

আপনি উপরের উদাহরণের শেষে দেখতে পাচ্ছেন, ক্ষেত্র অবজেক্ট হল একটি অ্যারে যার প্রতিটি ক্ষেত্র একটি অবজেক্ট হিসাবে রয়েছে।

উদাহরণস্বরূপ, দ্বিতীয় ক্ষেত্রের নাম ফেরত দিতে, দ্বিতীয় সারির আইটেমের নাম বৈশিষ্ট্য উল্লেখ করুন:

উদাহরণ

দ্বিতীয় ক্ষেত্রের নাম ফেরত দিন:

console.log(fields[1].name);

এটি এই ফলাফল তৈরি করবে:

address
ক্ষেত্রের বৈশিষ্ট্য ব্যাখ্যা
name কলামের নাম
table টেবিলের নাম
db ডাটাবেসের নাম
type ডেটা টাইপ সূচক
length ক্ষেত্রের সর্বোচ্চ দৈর্ঘ্য
flags মাঠের পতাকা

উন্নত নির্বাচন কৌশল

বাছাই এবং সীমাবদ্ধকরণ

ORDER BY এবং LIMIT সহ ডেটা নির্বাচন করুন:

// Select with ordering and limiting
con.query("SELECT * FROM customers ORDER BY name ASC LIMIT 5", function (err, result) {
  if (err) throw err;
  console.log(result);
});

বিভিন্ন মান নির্বাচন

স্বতন্ত্র মান পেতে DISTINCT ব্যবহার করুন:

// Select distinct values
con.query("SELECT DISTINCT address FROM customers", function (err, result) {
  if (err) throw err;
  console.log(result);
});

গণনার সাথে নির্বাচন

নির্বাচন করার সময় গণনা করুন:

// Select with calculations
con.query("SELECT COUNT(*) as total_customers FROM customers", function (err, result) {
  if (err) throw err;
  console.log("Total customers:", result[0].total_customers);
});

ভেরিয়েবল সহ নির্বাচন

ভেরিয়েবল ব্যবহার করে পরিবর্তনশীল নির্বাচন করুন:

// Select with variables
const columnName = "name";
const tableName = "customers";
const sql = `SELECT ${columnName} FROM ${tableName}`;

con.query(sql, function (err, result) {
  if (err) throw err;
  console.log(result);
});

নির্বাচনের জন্য সর্বোত্তম অনুশীলন

নিরাপত্তা

  • SQL ইনজেকশন প্রতিরোধ করতে প্রশ্ন চিহ্ন স্পেস ব্যবহার করুন
  • সর্বদা ব্যবহারকারীর ইনপুট যাচাই করুন
  • ডেটা ক্লিনজিং ফাংশন ব্যবহার করুন
  • স্পষ্টভাবে ত্রুটি বার্তা প্রদর্শন করবেন না

কর্মক্ষমতা

  • শুধুমাত্র প্রয়োজনীয় কলাম নির্বাচন করুন
  • বড় ফলাফল সেটের জন্য LIMIT ব্যবহার করুন
  • দক্ষতার জন্য উপযুক্ত প্রতীক ব্যবহার করুন
  • অপ্রয়োজনীয় ডেটা নির্বাচন করা এড়িয়ে চলুন

কোড গুণমান

  • পুনঃব্যবহারের জন্য SQL প্রশ্ন সংরক্ষণ করুন
  • সঠিক ত্রুটি হ্যান্ডলিং এবং ট্র্যাকিং ব্যবহার করুন
  • পড়ার জন্য প্রশ্ন তৈরি করুন
  • স্ট্যান্ডার্ড কোডিং নিয়মাবলী অনুসরণ করুন

সম্পূর্ণ উদাহরণ

সমস্ত নির্বাচন কৌশল কভার সম্পূর্ণ উদাহরণ:

const mysql = require('mysql');

// Create connection
const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "password",
  database: "company_db"
});

// Connect to MySQL
con.connect((err) => {
  if (err) {
    console.error('Error connecting to MySQL:', err.message);
    return;
  }
  
  console.log('Connected to MySQL database');
  
  // Example 1: Select all records
  console.log('\n1. All customers:');
  con.query("SELECT * FROM customers", (err, result) => {
    if (err) {
      console.error('Error selecting all customers:', err.message);
      return;
    }
    console.log(result);
  });
  
  // Example 2: Select specific columns
  console.log('\n2. Customer names and addresses:');
  con.query("SELECT name, address FROM customers", (err, result) => {
    if (err) {
      console.error('Error selecting specific columns:', err.message);
      return;
    }
    console.log(result);
  });
  
  // Example 3: Select with ordering and limiting
  console.log('\n3. First 5 customers ordered by name:');
  con.query("SELECT * FROM customers ORDER BY name ASC LIMIT 5", (err, result) => {
    if (err) {
      console.error('Error selecting with order and limit:', err.message);
      return;
    }
    console.log(result);
  });
  
  // Example 4: Get field information
  console.log('\n4. Field information:');
  con.query("SELECT name, address FROM customers", (err, result, fields) => {
    if (err) {
      console.error('Error getting field information:', err.message);
      return;
    }
    console.log('Fields:', fields);
    
    // Close connection after all queries
    setTimeout(() => {
      con.end((err) => {
        if (err) {
          console.error('Error closing connection:', err.message);
          return;
        }
        console.log('\nConnection closed');
      });
    }, 1000);
  });
});

অনুশীলন করুন

MySQL-এ একটি টেবিল থেকে ডেটা নির্বাচন করতে ব্যবহৃত সঠিক SQL স্টেটমেন্ট নির্বাচন করুন।

GET FROM customers
✗ ভুল! MySQL-এ "GET FROM" একটি বৈধ SQL বিবৃতি নয়
READ customers
✗ ভুল! "READ" MySQL-এ একটি বৈধ SQL বিবৃতি নয়
SELECT * FROM customers
✓ ঠিক আছে! "গ্রাহকদের থেকে নির্বাচন করুন" হল একটি বৈধ SQL স্টেটমেন্ট যা MySQL-এর একটি টেবিল থেকে ডেটা নির্বাচন করতে ব্যবহৃত হয়
FETCH customers
✗ ভুল! "FETCH" MySQL-এ একটি বৈধ SQL বিবৃতি নয়